library("tidyverse")
library("ggpubr")
library("zoo")
setwd("/mnt/LocalData/behaviour/aDN/aDN_behaviour")
gg_color_hue <- function(n) {
hues = seq(15, 375, length = n + 1)
hcl(h = hues, l = 65, c = 100)[1:n]
}
gg_color_hue(2)
[1] "#F8766D" "#00BFC4"
getwd()
[1] "/mnt/LocalData/behaviour/aDN/aDN_behaviour"
genotypes <- read_tsv("../2019_03_06_Courtship/genotype.tsv",col_names = TRUE)
genotypes
genotypes <- genotypes %>%
mutate(arena = round(if_else((fly_id %% 2) == 0,
fly_id/2,
(fly_id+1)/2),
digits = 0),
treatment = genotype,
sex = "male")
genotypes
arena_treatment <- genotypes %>%
unite("unique_arena",video,arena, remove = FALSE) %>%
select(unique_arena,treatment)
genotypes <- genotypes %>% select(-treatment,-arena)
arena_treatment
all_rawdata <- all_rawdata %>%
full_join(x = all_rawdata, y = genotypes, by = c("FileName"="video","Id"="fly_id")) %>%
replace_na(list(genotype = "CS")) %>%
replace_na(list(sex = "female"))
There were 12 warnings (use warnings() to see them)
all_rawdata
all_rawdata <- all_rawdata %>%
unite("unique_arena",FileName,Arena, remove = FALSE) %>%
left_join(y=arena_treatment, by = "unique_arena") %>%
select(-unique_arena)
all_rawdata
# # added for testing purposes - function not used in actual code
# female_pos <- function(theta,dist,ori,xmale,xfemale){
# yrel=calculate_yrel(theta,dist)
# xrel=calculate_xrel(ori,xmale,xfemale,yrel)
# return(c(xrel,yrel))
# }
# calculates relative y value based on data from feat.mat
calculate_yrel <- function(theta,dist){
yrel=dist*cos(theta)
return(yrel)
}
There were 12 warnings (use warnings() to see them)
calculate_xrel <- function(ori,xmale,xfemale,yrel,ppm=14.85){
xmale_mm=xmale/ppm
xfemale_mm=xfemale/ppm
xrel = (xfemale_mm - (cos(ori)*yrel+xmale_mm))/(sin(ori))
return(xrel)
}
calculate_xrel_abs <- function(theta,dist){
xrel=dist*sin(theta)
return(xrel)
}
all_rawdata <- all_rawdata %>%
arrange(FileName,Arena,Frame)
all_rawdata$rel_y_other <- NA
all_rawdata$rel_x_other <- NA
all_rawdata$rel_x_abs_other <- NA
all_rawdata$rel_x_abs_corr_other <- NA
all_rawdata$rel_y_other[seq(1,nrow(all_rawdata),2)] = calculate_yrel(all_rawdata$facing_angle__rad[seq(1,nrow(all_rawdata),2)],
all_rawdata$dist_to_other__mm[seq(1,nrow(all_rawdata),2)])
all_rawdata$rel_x_other[seq(1,nrow(all_rawdata),2)] = calculate_xrel(ori = all_rawdata$ori__rad[seq(1,nrow(all_rawdata),2)],
xmale = all_rawdata$pos_x__px[seq(1,nrow(all_rawdata),2)],
xfemale = all_rawdata$pos_x__px[seq(2,nrow(all_rawdata),2)],
yrel = calculate_yrel(all_rawdata$facing_angle__rad[seq(1,nrow(all_rawdata),2)],
all_rawdata$dist_to_other__mm[seq(1,nrow(all_rawdata),2)]))
all_rawdata$rel_x_abs_other[seq(1,nrow(all_rawdata),2)] = calculate_xrel_abs(all_rawdata$facing_angle__rad[seq(1,nrow(all_rawdata),2)],
all_rawdata$dist_to_other__mm[seq(1,nrow(all_rawdata),2)])
all_rawdata$rel_y_other[seq(2,nrow(all_rawdata),2)] = calculate_yrel(all_rawdata$facing_angle__rad[seq(2,nrow(all_rawdata),2)],
all_rawdata$dist_to_other__mm[seq(2,nrow(all_rawdata),2)])
all_rawdata$rel_x_other[seq(2,nrow(all_rawdata),2)] = calculate_xrel(ori = all_rawdata$ori__rad[seq(2,nrow(all_rawdata),2)],
xmale = all_rawdata$pos_x__px[seq(2,nrow(all_rawdata),2)],
xfemale = all_rawdata$pos_x__px[seq(1,nrow(all_rawdata),2)],
yrel = calculate_yrel(all_rawdata$facing_angle__rad[seq(2,nrow(all_rawdata),2)],
all_rawdata$dist_to_other__mm[seq(2,nrow(all_rawdata),2)]))
all_rawdata$rel_x_abs_other[seq(2,nrow(all_rawdata),2)] = calculate_xrel_abs(all_rawdata$facing_angle__rad[seq(2,nrow(all_rawdata),2)],
all_rawdata$dist_to_other__mm[seq(2,nrow(all_rawdata),2)])
all_rawdata$rel_x_abs_corr_other[which(all_rawdata$rel_x_other<0)] = -all_rawdata$rel_x_abs_other[which(all_rawdata$rel_x_other<0)]
all_rawdata$rel_x_abs_corr_other[which(all_rawdata$rel_x_other>0)] = all_rawdata$rel_x_abs_other[which(all_rawdata$rel_x_other>0)]
all_rawdata
unique(all_rawdata$treatment)
[1] "C" "B" "D" "A" NA
100*sum(is.na(all_rawdata$treatment))/nrow(all_rawdata)
[1] 1.449275
unique(all_rawdata$unique_fly[is.na(all_rawdata$treatment)])
[1] "Megan-2019_03_06_Courtship-DsxVglutTNT_Male_1234_2_9" "Megan-2019_03_06_Courtship-DsxVglutTNT_Male_1234_2_10" "Megan-2019_03_06_Courtship-DsxVglutTNT_Male_1234_9_31" "Megan-2019_03_06_Courtship-DsxVglutTNT_Male_1234_9_32"
all_rawdata %>%
filter(FileName == "Megan-2019_03_06_Courtship-DsxVglutTNT_Male_1234_2") %>%
filter(Id == 3) %>%
filter(dist_to_other__mm > 2.5) %>%
summarise(unique_fly = unique(unique_fly),
l_ipsi = sum(wing_l_ang__rad<(-35*pi/180) & rel_x_abs_corr_other<0, na.rm = TRUE)/length(Frame),
r_ipsi = sum(wing_r_ang__rad>(35*pi/180) & rel_x_abs_corr_other>0, na.rm = TRUE)/length(Frame),
l_contra = sum(wing_l_ang__rad<(-35*pi/180) & rel_x_abs_corr_other>0, na.rm = TRUE)/length(Frame),
r_contra = sum(wing_r_ang__rad>(35*pi/180) & rel_x_abs_corr_other<0, na.rm = TRUE)/length(Frame)
)
all_rawdata <- all_rawdata %>%
arrange(FileName,Id,Frame) %>%
group_by(unique_fly) %>%
mutate(rollavg_dist_to_other = rollmean(dist_to_other__mm, 150, fill = c(NA,0,NA), align = c("center")))
all_rawdata
all_rawdata <- all_rawdata %>% select(-ipsi_wing,-contra_wing)
all_rawdata <- all_rawdata %>%
mutate(ipsi_wing = if_else(((wing_l_ang__rad<(-15*pi/180) &
rel_x_abs_corr_other<=0) |
(wing_r_ang__rad>(15*pi/180) &
rel_x_abs_corr_other>=0)),1,0),
contra_wing = if_else(((wing_l_ang__rad<(-15*pi/180) &
rel_x_abs_corr_other>0) |
(wing_r_ang__rad>(15*pi/180) &
rel_x_abs_corr_other<0)),1,0)
) %>%
replace_na(list(ipsi_wing = 0)) %>%
replace_na(list(contra_wing = 0))
all_rawdata
all_rawdata <- all_rawdata %>%
mutate(ipsi_wing_ang = if_else(((wing_l_ang__rad<(-15*pi/180) &
rel_x_abs_corr_other<=0) |
(wing_r_ang__rad>(15*pi/180) &
rel_x_abs_corr_other>=0)),1,0),
contra_wing = if_else(((wing_l_ang__rad<(-15*pi/180) &
rel_x_abs_corr_other>0) |
(wing_r_ang__rad>(15*pi/180) &
rel_x_abs_corr_other<0)),1,0)
) %>%
replace_na(list(ipsi_wing = 0)) %>%
replace_na(list(contra_wing = 0))
all_rawdata
all_rawdata <- all_rawdata %>%
mutate(ipsi_wing_ang = if_else(rel_x_abs_corr_other>0,
wing_r_ang__rad,
wing_l_ang__rad),
contra_wing_ang = if_else(rel_x_abs_corr_other<0,
wing_r_ang__rad,
wing_l_ang__rad)
)
all_rawdata
all_rawdata <- all_rawdata %>%
mutate(ipsi_wing_len = if_else(rel_x_abs_corr_other>0,
wing_r_len__px,
wing_l_len__px),
contra_wing_len = if_else(rel_x_abs_corr_other<0,
wing_r_len__px,
wing_l_len__px)
)
Warning messages:
1: Unknown or uninitialised column: 'dist_to_other__mm'.
2: Unknown or uninitialised column: 'dist_to_other__mm'.
3: Unknown or uninitialised column: 'dist_to_other__mm'.
4: Unknown or uninitialised column: 'dist_to_other__mm'.
5: Unknown or uninitialised column: 'facing_angle__rad'.
6: Unknown or uninitialised column: 'facing_angle__rad'.
7: Unknown or uninitialised column: 'facing_angle__rad'.
8: Unknown or uninitialised column: 'facing_angle__rad'.
all_rawdata